package util;

public class CombinationNum {

	public static long calculateRes(int n, int m) {
		int[] result = new int[n + 1];

		//采用动态规划来做
		//这个是压缩之后的，原本的应该是dp[n][m]
		//C(n, m) = C(n - 1 , m - 1) + C(n - 1, m) 
		for (int i = 1; i <= n; i++) {
			result[i] = 1;
			//这个就相当于计算C(i, j)
			for (int j = i - 1; j >= 1; j--) {
				result[j] = result[j - 1] + result[j];
			}
			//随着i到达了n，result最后就存储的是C(n,k);(0 =<k  <=n)
			result[0] = 1;
		}
		System.out.println(result[m]);
		return result[m];
	}
}
